package yecq_test1;

// 引入主函数的中的信号量
import static yecq_test1.main_PC.notFull;
import static yecq_test1.main_PC.mutex;
import static yecq_test1.main_PC.count;
import static yecq_test1.main_PC.notEmpty;

// 在有其他继承的情况下可以使用 implements Runnable
class Customer extends Thread
{

    @Override
    public void run()
    {
        while(true)
        {
            try
            {
                // 设置等待时间让程序运行更加清晰
                Thread.sleep(1000);
            }
            catch (InterruptedException e1)
            {
                e1.printStackTrace();
            }
            try
            {
                // 获取一个不为空的信号量
                notEmpty.acquire();
                // 获取一个"许可"信号量
                mutex.acquire();
                System.out.println(Thread.currentThread().getName()
                        + "消费者工作，消费了" + count );
                count--;
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            finally
            {
                // 释放一个"许可"信号量
                mutex.release();
                // 释放一个不为满的信号量
                notFull.release();
            }

        }

    }

}

